﻿/**
 *
 * @file OperAbstractNCT.h
 * @brief 声学包操作器抽象类声明
 * @author wangning (2185896382@qq.com)
 * @date 2024-12-16
 *
 */
#ifndef _OPER__NCT__ABSTRACT_H___
#define _OPER__NCT__ABSTRACT_H___

#include "FITK_Kernel/FITKCore/FITKActionOperator.h"
#include "FITK_Kernel/FITKCore/FITKOperatorRepo.h"
#include "OperatorsInterfaceAPI.h"

namespace EventOper
{
    /**
     * @brief 声学包操作器抽象类声明
     * @author wangning (2185896382@qq.com)
     * @date 2024-12-16
     */
    class OperatorsInterfaceAPI OperAbstractNCT : public Core::FITKActionOperator
    {
    public:
        /**
         * @brief Construct a new Oper NCT object
         * @author wangning (2185896382@qq.com)
         * @date 2024-12-16
         */
        explicit OperAbstractNCT() = default;
        /**
         * @brief Destroy the Oper Abstract NCT object
         * @author wangning (2185896382@qq.com)
         * @date 2024-12-16
         */
        virtual ~OperAbstractNCT() = 0;

        /**
        * @brief 创建声学包
        * @author wangning (2185896382@qq.com)
        * @date 2024-12-10
        */
        virtual void createNCT();
        /**
         * @brief 复制声学包
         * @param[i]  nctID           声学包id
         * @author wangning (2185896382@qq.com)
         * @date 2024-12-10
         */
        virtual void duplicateNCT(const int nctID);
        /**
         * @brief 编辑声学包
         * @param[i]  nctID          声学包id
         * @author wangning (2185896382@qq.com)
         * @date 2024-12-10
         */
        virtual void editNCT(const int nctID);
        /**
         * @brief 删除声学包
         * @param[i]  nctID          声学包id
         * @author wangning (2185896382@qq.com)
         * @date 2024-12-10
         */
        virtual void removeNCT(const int nctID);

        virtual void setAttribute(const QString &name, const QString& text, const int attrIndex, const QList<int> & nctIDs);

    };
}


#endif